code: @Override
      void remove(final int x, final List<int[]> cycles) {
  
          final List<PathEdge> edges = remove(x);
          final List<PathEdge> reduced = combine(edges, x);
  
          for (final PathEdge e : reduced) {
              if (e.len() <= limit) {
                  if (e.loop())
                      cycles.add(e.path());
                  else
                      add(e);
              }
          }
      }
docs: {@inheritDoc}