// transition to left state A are all started with _A which means all transition cause exit state A must be router by _A
builder.transitions().from(DecisionState._A).toAmong(DecisionState.B, DecisionState.C, DecisionState.D).
onEach(DecisionEvent.A2B, DecisionEvent.A2C, DecisionEvent.A2D).callMethod("a2b|a2c|_");
builder.transitions().fromAmong(DecisionState.B, DecisionState.C, DecisionState.D).
to(DecisionState.A).on(DecisionEvent.ANY2A);
// use local transition avoid invoking state A exit functions when entering its decision state
builder.localTransitions().between(DecisionState.A).and(DecisionState._A).
onMutual(DecisionEvent.A2ANY, DecisionEvent.ANY2A).