Use edges_reroute_except() instead of edges_reroute() + set_irn_n().