Route defaults are now stored separately, further abstracting MVC. Router now supports filter registration for matching routes and modifying their parameters. As a result, Router::resolve is now registered as a filter by default instead of hardcoded into Router::match.