title: Vue Router - catch all wildcard not working
body: <p>I'm using Vue Router with Vue 3 and am trying to add a catch-all route to redirect the user if they try and access an invalid URL. When I try and use the wildcard (*), i get the following error logged to the console:</p>
  <pre><code>Uncaught Error: A non-empty path must start with &quot;/&quot;
      at tokenizePath (vue-router.esm.js?8c4f:975)
      at createRouteRecordMatcher (vue-router.esm.js?8c4f:1106)
      at addRoute (vue-router.esm.js?8c4f:1190)
      at eval (vue-router.esm.js?8c4f:1335)
      at Array.forEach (&lt;anonymous&gt;)
      at createRouterMatcher (vue-router.esm.js?8c4f:1335)
      at createRouter (vue-router.esm.js?8c4f:2064)
      at eval (index.js?a18c:26)
      at Module../src/router/index.js (app.js:1402)
      at __webpack_require__ (app.js:854)
  </code></pre>
  <p>I'm assuming this is because I don't prepend the path containing the asterisk with a '/', but if I do this then the catch all doesn't work. Here are my routes:</p>
  <pre><code>imports...
  
  const routes = [
    {
      path: '/',
      name: 'Home',
      component: Home
    },
    {
      path: '/user',
      name: 'User',
      // route level code-splitting
      // this generates a separate chunk (user.[hash].js) for this route
      // which is lazy-loaded when the route is visited.
      component: () =&gt; import(/* webpackChunkName: &quot;user&quot; */ '../views/user/User.vue'),
      children: [{path: '', component: UserStart}, {path: ':id', component: UserDetail}, {path: ':id/edit', component: UserEdit, name: 'userEdit'}]
    },
    {path: '/redirect-me', redirect: '/user'},
    {path: '*', redirect: '/'}
  ]
  
  const router = createRouter({
    history: createWebHashHistory(),
    routes
  })
  
  export default router
  </code></pre>
  <p>The wildcard route is the last object in the routes array. Does anyone know what I'm doing wrong?</p>