code: public void register(Object object, Function1<? super Event, ? extends Boolean> filter, Procedure1<? super Object> callback) {
  		synchronized (this.behaviorGuardEvaluatorRegistry) {
  			this.behaviorGuardEvaluatorRegistry.register(object, filter, callback);
  		}
  	}
docs: Registers all {@code PerceptGuardEvaluator} methods on {@code object} to receive events.
  
  <p>If the filter is provided, it will be used for determining if the given behavior accepts a specific event.
  If the filter function replies {@code true} for a specific event as argument, the event is fired in the
  behavior context. If the filter function replies {@code false}, the event is not fired in the behavior context.
  
  @param object object whose {@code PerceptGuardEvaluator} methods should be registered.
  @param filter the filter function. It could be {@code null}.
  @param callback function which is invoked just after the first registration of the object. It could be {@code null}.