How to skip route if not user access I have two routes (from views module) with path "/test".

Route N1 required "role_1" user role, route N2 required "role_2" user role.

Rote N1:

class Symfony\Component\Routing\Route#9524 (9) {
  private $path =&gt;
  string(5) "/test"

...

  private $defaults =&gt;
  array(3) {
    '_controller' =&gt;
    string(47) "Drupal\views\Routing\ViewPageController::handle"
    'view_id' =&gt;
    string(4) "test"
    'display_id' =&gt;
    string(6) "page_1"
  }
  private $requirements =&gt;
  array(2) {
    '_role' =&gt;
    string(6) "role_1"
    '_method' =&gt;
    string(8) "GET|POST"
  }

...


Route N2:

class Symfony\Component\Routing\Route#9524 (9) {
  private $path =&gt;
  string(5) "/test"

...

  private $defaults =&gt;
  array(3) {
    '_controller' =&gt;
    string(47) "Drupal\views\Routing\ViewPageController::handle"
    'view_id' =&gt;
    string(4) "test"
    'display_id' =&gt;
    string(6) "page_2"
  }
  private $requirements =&gt;
  array(2) {
    '_role' =&gt;
    string(6) "role_2"
    '_method' =&gt;
    string(8) "GET|POST"
  }

...


How to skip route N1 if current user have "role_2" but does not have "role_1"?
You can't have multiple routes on the same path with different access checks, it just doesn't work like that.

If you want something like this, then you need to create your own route, check permission/role of the user there and then display the right view based on that.