docs: @SuppressWarnings("unchecked")
      public <Source extends RouteSource, Destination extends RouteDestination>
      Stream<Route<Source, Destination>> streamRoutes(Class<Source> sourceType, Class<Destination> destinationType) {
          //Unfortunately there is no nice way to do a cast here, so we need to un-generify this.
          Stream unGenerifiedStream = routes.stream()
                  .filter(r -> sourceType.isAssignableFrom(r.getRouteSource().getClass()))
                  .filter(r -> destinationType.isAssignableFrom(r.getRouteDesitnation().getClass()));
  
          return unGenerifiedStream;
      }