Separate controller resolver

Separate the controller resolver so that implementations can override the default REST-like resolver with their own, making implementations such as /<controller>/<method> etc. possible