code: public Pattern<T, F> where(IterativeCondition<F> condition) {
  		Preconditions.checkNotNull(condition, "The condition cannot be null.");
  
  		ClosureCleaner.clean(condition, true);
  		if (this.condition == null) {
  			this.condition = condition;
  		} else {
  			this.condition = new RichAndCondition<>(this.condition, condition);
  		}
  		return this;
  	}
docs: Adds a condition that has to be satisfied by an event
  in order to be considered a match. If another condition has already been
  set, the new one is going to be combined with the previous with a
  logical {@code AND}. In other case, this is going to be the only
  condition.
  
  @param condition The condition as an {@link IterativeCondition}.
  @return The pattern with the new condition is set.