! routing: add `PathMatcher::repeated` modifier, closes #636

 The change is breaking because
 - the implicit infrastructure for the `PathMatcher::?` modifier was changed
 - the `Segments` matcher now doesn't match trailing slashes anymore