Why not using the nodes themselves for suggesting a specific ordering?
digraph G { { edge[style=invis] a[label="for"] b[label="initial assignment"] c[label="condition"] d[label="final assignment"] e[label="code"] f[label="end"] a -> b -> c -> d -> e -> f } a -> b -> c c -> e [color=red] c -> f [color=red] e -> d -> c [color=red] }