public InternalStatus ChangeStatus(InternalStatus current, InternalStatus desired) { string key = ParseKey(current, desired); var newstatus = rules[key] as InternalStatus; return newstatus ?? current; }