private boolean checkIfRoutesExist(List<VPNEndpoint> vpnEndpoints) {
    boolean routesExist = false;

    for (VPNEndpoint vpnEndpoint : vpnEndpoints) {
      ec2Client.setEndpoint(vpnEndpoint.getRegion().getEndpoint());
      DescribeRouteTablesResult descRouteTableResult = ec2Client.describeRouteTables();
      List<RouteTable> routeTables = descRouteTableResult.getRouteTables();

      for (RouteTable routeTable : routeTables) {
        if (routeTable.getVpcId().equals(vpnEndpoint.getVpc().getVpcId())) {
          List<Route> routes = routeTable.getRoutes();
          for (Route route : routes) {
            for (VPNEndpoint extVpnEndpoint : vpnEndpoints) {
              if (!vpnEndpoint.equals(extVpnEndpoint)) {
                LOG.debug("Checking if route allows requested traffic: " + route);
                if (route.getDestinationCidrBlock().endsWith(extVpnEndpoint.getVpc().getCidrBlock())) {
                  routesExist = true;
                  LOG.error("A route already exists between " + vpnEndpoint.getVpc().getCidrBlock() + " and " + extVpnEndpoint.getVpc().getCidrBlock());
                }
              }
            }
          }
        }
      }

    }

    return routesExist;
  }