Huh. I was sure you had created a spurious “entrance” or “museum” object. But that’s not what happened.
Best I can tell, the compiler matches this as “going west in (Entrance) to (Museum)”. But “Entrance” and “Museum” are both shorthand for the same room, the Entrance to the Museum. That is, the rule conditions require that the location and the room-gone-to are the same room. This never happens.
It’s not exactly a bug – it’s a consistent interpretation of what you wrote. Not what you wanted though.
Unfortunately, the general policy of I7 is that interpreting ambiguities in a valid-but-useless way is not a bug. I ran into an issue long ago where having an object with “inventory” in its name will prevent writing any rules about the “taking inventory” action, since that will always be interpreted by the compiler as “taking the inventory summary list” or whatnot. This was closed as working as intended, because it is a valid reading of an ambiguous description—even though there’s no way to get the intended interpretation (except to remove the word “inventory” from all your object names).
Fortunately, parentheses can resolve this one, even if they look a bit awkward.