Is it possible to hide menu items based on path? I am looking to hide a menu item based on the path of a couples pages. It would be similar to how blocks can be shown on or not shown on a path. My initial attempts revealed that the caching of menus does not permit one to have the ability to remove menu items per page load. 

hook_menu_alter() only runs once after a cache clear and then the menu is retrieved from the cache. Does anyone have any ideas on how to accomplish this or is it a futile attempt?

Thanks.
Yes you can by using an access callback which when defined calls a function. In this function you can analyze the path and based on that return TRUE or FALSE. When you return FALSE, the menu item is not visible. See the documentation of hook_menu for more details.  

A simple example:

// in hook_menu something like this, important part is the 'access callback'
 $items["menu/item"] = array(
     'title' =&gt; "menu item 1",
     'description' =&gt; 'Access test',
     'page callback' =&gt; 'node/1',
     'access callback' =&gt; 'check_path',
     'menu_name' =&gt; 'navigation',
     'type' =&gt; MENU_NORMAL_ITEM,
 );

// then define your access callback function
  function check_path(){
    // check path here and return TRUE or FALSE
    return TRUE;
  }


I just asked a similar question dealing with this: How to build a dynamic menu structure. You may find more information in that question that can help you.