title: Getting multiple items out of this.router.events.subscribe()
body: <p>I am currently subscribing on router events to change the title of my page when routes change, like so</p>
  
  <pre><code>this.routerSub$ = this.router.events
      .filter(event =&gt; event instanceof NavigationEnd)
      .map(() =&gt; this.activatedRoute)
      .map(route =&gt; {
          while (route.firstChild) route = route.firstChild;
          return route;
      })
      .filter(route =&gt; route.outlet === 'primary')
      .mergeMap(route =&gt; route.data)
      .subscribe((event) =&gt; {
          title = event['title']
              ? `${event['title']}`
              : 'Default Title'
          this.title.setTitle(title);
      });
  </code></pre>
  
  <p>My issue is that on certain scenarios, I want to set the title to a value in url (part of a route). How do I do this here? I know I cannot subscribe to the url as well as events but am having a hard time figuring out what to map inside.</p>
  
  <p><strong>Here is what I am trying that is failing</strong></p>
  
  <pre><code>   this.router.events
          .filter(event =&gt; event instanceof NavigationEnd)
          .map(() =&gt; {
              return this.activatedRoute
          })
        .switchMap(route =&gt; {
          return route.data.combineLatest(route.url, (data, url) =&gt; {
              return data['title'] ? `Title: ${data['title']}` : url.join('');
          });
      })
  </code></pre>
  
  <p>On the .switchMap line, route is of type ActivatedRoute, route.data is of type Object and the error I get on the combineLatest() line is</p>
  
  <blockquote>
    <p>route.data.combineLatest is not a function</p>
  </blockquote>