public Outcome dispatch(Target target) {
    Outcome to = this.rules.get(target.name()).run();

    if (!to.get().isAttached()) {
      this.container.add(to.get());
    }

    this.event.onDispatch(this.currentOutcome, to);
    return this.currentOutcome = to;
  }