code: NodeState<T> addTransition(ElementConstraint test, NodeState<T> targetState) {
      	assert (test != null);
      	assert (targetState != null);
          for (NodeTransition<T> transition : transitions) {
              if (transition.getTest().equals(test)) {
                  return transition.getTarget();
              }
          }
          transitions.add(new NodeTransition<T>(test, targetState));
          //System.out.println("Added " + this + " --" + test + "-->" + targetState);
          return targetState;
      }
docs: Add a transition to another node state based on the specified test.  Only
  one transition is allowed for a given test, so if a duplicate test is
  added, the existing target node will be returned.
  @param test
  @param targetState
  @return node that the transition leads to