> What if two patterns overlap but neither is more specific? For example, /posts/{id} and /{resource}/latest both match /posts/latest. There is no obvious answer to which takes precedence, so we consider these patterns to conflict with each other. Registering both of them (in either order!) will panic.
A panic? That's a bad dev experience. Why not say an earlier variable is more general -- or a later variable is more specific? /posts/{id} wins.
Consider /posts/{id} vs:
/posts/latest/{u} // wins (later variable)
/posts/{id}/latest // wins (more specific)
/posts/{id}/{id2} // wins (later variable. id2 must exist)
/{u}/posts/ // lose (earlier variable)
/posts/{otherId} // invalid (same path with different name)
/latest/{u} // no conflict