Fix routing logic, move some part to BaseController
Add HTTP method prefixed action