Deleted PhaseSupplier and Phase.invoke_or_when
when(x,y) -> when(y); x;
when -> returns
Reversing logic to support swith from when(x,y) to returns(y); x;