Pacman-like collision

So I’m created a non-tile based pacman-like game and I’m trying to figure out how to manage keeping the character withing the pathing bounds. The way I’m going about things now is using hittest on four points around the character and stopping velocity accordingly. something like:

 	  		if(!road.hitTestPoint(x + halfwidth,y),true)){	
				velocity.x = velocity.x > 0 ? 0 : velocity.x;	
			}
if(!road.hitTestPoint(x - halfwidth,y),true)){	
				velocity.x = velocity.x < 0 ? 0 : velocity.x;;	
			}
etc..

Simple. If you’re touching a right wall and still moving toward the right, kill your velocity (so you cant move in that direction anymore. This works fine untill you factor in corners.

http://mistermartinez.com/CreamWolf/CreamWolfDEBUG.swf

Because the points I’m testing dont including corners some overlapping occurs. The problem is when I test the corner points instead of what I’ve done above… things gets tricky and I cant wrap my head around a fix.

Am I even approaching this problem with the best method?

*tiles aren’t an option.