[x] Build router using reflection once so that the router isn't using reflection (slow) during dispatch. Right now it naively uses reflection on every request when instead it should compile a mapping at init. (Even though I improved it and checked the box, more work could be done)
[x] Consider compiling one regex that maps requests to handlers.
The API could look something like this:
TODO:
group("/prefix")
API.