code: final boolean select(int extension, ExplorationStep state) throws WrongFirstParentException {
  		if (this.allowExploration(extension, state)) {
  			return (this.next == null || this.next.select(extension, state));
  		} else {
  			PLCMCounters key = this.getCountersKey();
  			if (key != null) {
  				((PLCM.PLCMThread) Thread.currentThread()).counters[key.ordinal()]++;
  			}
  			return false;
  		}
  	}
docs: This one handles chained calls
  
  @param extension
  @param state
  @return false if, at the given state, trying to extend the current
  pattern with the given extension is useless
  @throws WrongFirstParentException