Supporting a list of routes is possibly unnecessary, but it is a clean way to separate the dynamic router from the built-in static router. It also means we can tack on a redirector, pre-filter, etc. We could even add a logger at the start of the routes, so that any page request gets logged, by making the logger-route always return false (deferring to the next route).