code: public AbstractEdge<T> match(T value) throws UnmatchedException, MIDDException {
          for (AbstractEdge<T> e : this.edges) {
              if (e.match(value)) {
                  return e;
              }
          }
          throw new UnmatchedException("No matching edge found for value " + value);
      }
docs: Return an edge to match with input value
  
  @param value
  @return
  @throws nl.uva.sne.midd.UnmatchedException