A Route is the basic data structure that stores both the path
and the handler that gets executed for the route.
The path can contain variable pattern such as user/:userid/invoices
A RouteResult is what the router returns when match_route is called.
It contains the matched route and also a params property holding
a HashMap with the keys being the variable names and the value being the
evaluated string
The Router’s job is it to hold routes and to resolve them later against
concrete URLs. The router is also a regular middleware and needs to be
added to the middleware stack with server.utilize(router).