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.