Faster BlockPath() method, and should be a faster IsShortestPathFree()