Better edge labels on ortho edges

The splines documentation says this about ortho

Currently, the routing does not handle ports or, in dot, edge labels.

This left me wondering what dot does with ortho edge labels, and what neato does differently (if anything)

A quick experiment shows that dot does something with ortho edge labels (not that bad a result) (see below) but neato produces an arguably better result (also below).
And by pipelining dot and neato, we can get a dot node layout and a neato edge and edge label layout. Fun!

The test graph:

/***************************************************************************
  compare the results:
   dot orthoLabelTest.gv -Tpng -Glabel="edges by dot"       >look.dot.png
   dot orthoLabelTest.gv |neato -n -Tpng -Glabel="edges by neato" >look.neato.png
****************************************************************************/

digraph orthoLabelTest {
  splines=ortho
  a -> {b b1 b2} [label="small"]
  b -> {c c1 c2} [label="a\nto\nb"]
  c -> {d d1 d2} [label="not very small at all"]
  d -> {e e1 e2} [label=<<B>Bold!!</B>>]
}

The command lines:

dot orthoLabelTest.gv -Tpng -Glabel="edges by dot"   >look.dot.png
dot orthoLabelTest.gv |neato -n -Tpng -Glabel="edges by neato" >look.neato.png

dot result:

neato result: