Event-based routing system for Vue.js