better support for nested contextual routers

Currently `Link`s that are nested two levels deep only take their parent's `matchedPath` into account but not their parent's `prefix`.

Also, when working with nested contextual routers, it is sometimes handy to use the [optional path matching](https://github.com/snd/url-pattern#make-optional-pattern-from-string) feature provided by url-pattern to make the trailing slash optional: `/:slug(/*)`