code: private int indexOfFused(int start, BitSet cycle) {
          for (int i = start; i < cycles.size(); i++) {
              if (and(cycles.get(i), cycle).cardinality() > 1) {
                  return i;
              }
          }
          return -1;
      }
docs: Find the next index that the <i>cycle</i> intersects with by at least two
  vertices. If the intersect of a vertex set with another contains more
  then two vertices it cannot be edge disjoint.
  
  @param start start searching from here
  @param cycle test whether any current cycles are fused with this one
  @return the index of the first fused after 'start', -1 if none