title: TYPO3 Nested URLS for news categories
body: <p>I’m coming to the end of my tether with how the URL system works. I don’t know if it is a compatibility issue with an extension I have installed, my understanding of the URL system in general or something else.</p>
  <p>I have a plugin that displays, for want of a better word, called <code>tx_llcatalog_pi</code>  - this has the concept of filters and so, currently, the URL to filter looks like:</p>
  <pre><code>/news-publications/?tx_llcatalog_pi[filters][news]=814&amp;tx_llcatalog_pi[filters][partnerships]=766&amp;tx_llcatalog_pi[filters][themes]=800
  </code></pre>
  <p>The IDs are actually pages (this may be confusing TYPO3) which we use as categories. You can have 3 filters applied from different categories.</p>
  <p>If I add the following routeEnhancer then it begins to work with nicer URLs:</p>
  <pre class="lang-yaml prettyprint-override"><code>CatalogFilterNews:
      type: Plugin
      routePath: '/{type}/{partner}/{theme}'
      namespace: 'tx_llcatalog_pi'
      limitToPages: [450]
      defaults:
        type: 'all'
        partner: 'all'
        theme: 'all'
      _arguments:
        type: 'filters/news'
        partner: 'filters/partnerships'
        theme: 'filters/themes'
  </code></pre>
  <p>The URL generated is</p>
  <pre><code>/news-publications/817/all/all/
  </code></pre>
  <p>I can even update the routePath to something like <code>/type-{type}/partner-{partner}/theme-{theme}</code> and it works as expected (<code>/news-publications/type-817/partner-all/theme-all/</code> )</p>
  <p>The problem comes when I try to use an aspect. As mentioned, each category is a page which has a title and custom “slug” url field which only contains the title, adding an aspect just creates a 404. (although generates the right URL: <code>/news-publications/consultation-responses/all/all/</code>)</p>
  <pre class="lang-yaml prettyprint-override"><code>  CatalogFilterNews:
      type: Plugin
      routePath: '/{type}/{partner}/{theme}'
      namespace: 'tx_llcatalog_pi'
      limitToPages: [450]
      aspects:
        type:
          type: PersistedAliasMapper
          tableName: pages
          routeFieldName: tx_lltaxonomy_slug
        partner:
          type: PersistedAliasMapper
          tableName: pages
          routeFieldName: tx_lltaxonomy_slug
        theme:
          type: PersistedAliasMapper
          tableName: pages
          routeFieldName: tx_lltaxonomy_slug
      defaults:
        type: 'all'
        partner: 'all'
        theme: 'all'
      _arguments:
        type: 'filters/news'
        partner: 'filters/partnerships'
        theme: 'filters/themes'
  </code></pre>
  <p>Interestingly, if I reduce the logic to just 1 filter (e.g. type) with the aspect, it works</p>
  <p>Any pointers would be amazing. Thanks!</p>