title: VueRouter advanced pattern matching
body: <p>I'm using VueRouter for my SPA but i'm having problems matching an advanced route pattern.</p>
  <p>The following pattern is exactly what I need and it also works in the <a href="https://forbeslindesay.github.io/express-route-tester/" rel="nofollow noreferrer">Express route tester</a></p>
  <pre><code>movies/:filterDate?/?:filterTag(?:tag/(([^/]+?)))?
  </code></pre>
  <p>However this behaves very wierd in VueRouter and it doesn't seem to match at all.</p>
  <p>A simplified version that does work in VueRouter is this one:</p>
  <pre><code>movies/:filterDate?/:filterTag?
  </code></pre>
  <p>Downside is that my component can't know the difference between the filterDate or filterTag parameter. Therefore I wanted to prefix the tag parameter with tag/:filterTag like I tried in the first pattern</p>
  <p>Here are a few examples with edge cases how it should match.</p>
  <pre><code>/movies
  filterDate: undefined
  filterTag: undefined
  
  /movies/today
  filterDate: today
  filterTag: undefined
  
  /movies/today/tag/family
  filterDate: today
  filterTag: family
  
  /movies/tag/family
  filterDate: undefined
  filterTag: family
  </code></pre>
  <p>If needed I could prefix the filterDate as well with something like date/:filterDate so we end up with a url like <code>/movies/date/today/tag/family</code> but I don't think that's needed here.</p>