Is there any way I can modify the values inside the weight_map in between DSP stages to invalidate certain paths which will result in them being rejected for relaxation? Or perhaps there is an easier and tidier way of achieving the same result?

You probably don't want to modify the edge weights - that might have some weird side effects. You might want to look at providing new distance_compare and distance_combine functions for the Dijkstra algorithm.
 
Andrew Sutton
andrew.n.sutton@gmail.com