1995 method from FPGA routing: let nets overlap at first, then make crowded spots more expensive each round until everyone negotiates their own space. Its "history cost" works like ant pheromone.
How it looks
Drawing: a routing grid, not a part of CORE3588
A drawing on a routing grid, computed with the PathFinder rule for this card. After 2 rounds the two nets no longer share any square: net B moved to a side gap because the squares both had used (shaded) became expensive.