Make every weight nonnegative with one Bellman-Ford run from a new vertex, then run Dijkstra from every vertex: all pairs, even with negative edges.
This interactive visualization needs JavaScript.