public Value Send(Value value, string messageName, Arguments arguments, out bool handled) { var stack = new Stack <Region>(); Regions.ForEachRegion(stack.Push); while (stack.Count > 0) { var region = stack.Pop(); if (!region.ContainsMessage(messageName)) { continue; } handled = true; return(region[messageName]); } handled = false; return(null); }