Laravel.io
var csrfToken = $('#token').attr('value');

var Vue = require('vue');
var VueRouter = require('vue-router');
Vue.use(VueRouter);
Vue.use(require('vue-resource'));
Vue.http.headers.common['X-CSRF-TOKEN'] = csrfToken;
Vue.config.debug = true;

import Todo from './components/Todo.vue';

var TodoApp = new Vue({
    el: '#app',
    components: { Todo }
});

router.map({
    '/': {
        component: Todo,

        subRoutes: {
            '/': {
                component: {
                    template: '<p>Default sub view for Todo</p>'
                }
            },
            '/add': {
                component: {
                    template: '<p>Default sub view for Add</p>' //not sure how to make this refer to a sub-component of Todo, so just placeholder
                }
            },
            '/completed': {
                component: {
                    template: '<p>Default sub view for Completed</p>'
                }
            }
        }
    }
});

// start app
router.start(TodoApp, '#app');

Please note that all pasted data is publicly available.