Much more green
Close #1619
No nested trinary, Fix the tests, and the doc for the new feature
No need to ```return next()``` in hooks, unless you want to get the promise