code: public void removeTarget(T target) {
      Iterator<Pattern<T>> it = patterns.iterator();
      while (it.hasNext()) {
        Pattern<T> pattern = it.next();
        if (pattern.target().equals(target)) it.remove();
      }
  
      reverse.remove(target);
    }
docs: ----------------------------------------------------------------------------