How to show blocks by url, when nodes have multiple paths? I know that having multiple path aliases to a single node is discouraged, but it is a situation I have to deal with.

My node is accessible via /news/node-1, /baseball/news/node-1 and /basketball/news/node-1. It's the same node, just three different aliases.

I have a 3 menu blocks, only 1 of which should be shown at any given time. I've configured the Page restrictions on the blocks so that they are restricted to certain url path patterns.

The "baseball" menu is restricted to baseball/*, the "basketball" menu is restricted to basketball/* and the 3rd menu is everything else, so I've set it to show on all pages except for baseball/* and basketball/*. 

However, my problem is that when I'm browsing to baseball/news/node-1, the 3rd "everything else" menu is the one being shown. My -guess- is that Drupal is looking behind the scenes and seeing that the node is also considered to be /news/node-1 and therefore the path being used to choose my menu block is choosing the 3rd "everything else" menu.

a) Is there a way to see what path Drupal is using when determining which blocks to show based on path? 

b) Is there a hook I could implement so that I can directly control which block to show on each request? 

c) Any other ideas how I can make sure the correct block is shown?
Try setting the baseball menu to show on baseball/* and baseball/*/*. Likewise for the basketball menu, then set the Everything Else menu not to show on all four paths.