I am currently using require.js and angular. Since I have a very long list of custom views, each for a different task. I've cooked up a way of including them dynamically using requirejs.
First a list of tasks is defined, which is provided as a constant. Then for each of the available tasks the file is required using require.js and the controller subsequently registered to the app by using the injector.
Then for each of the tasks a route is added to the route provider (namespaced on a workflow).
var tasks = {
'available' : [