3 updates that were required for my project

- I did see any mechanism to use the "standard" callback approach that we use in express or other frameworks.It was very important as my underlying database forces me to use callbacks (mongodb). So, I add a way to use callbacks (fallback to your logic if no callback provided). 
- I've added a few changes to let the implementation change the status code returned by a request. 
- I think I corrected a bug with optional parameters support in your code. Please have a look, but it really solved my problem.