docs: @Override
      public void start(EdgeExplorer explorer, int startNode) {
          IntArrayDeque stack = new IntArrayDeque();
  
          GHBitSet explored = createBitSet();
          stack.addLast(startNode);
          int current;
          while (stack.size() > 0) {
              current = stack.removeLast();
              if (!explored.contains(current) && goFurther(current)) {
                  EdgeIterator iter = explorer.setBaseNode(current);
                  while (iter.next()) {
                      int connectedId = iter.getAdjNode();
                      if (checkAdjacent(iter)) {
                          stack.addLast(connectedId);
                      }
                  }
                  explored.add(current);
              }
          }
      }