Why is graphviz drawing two arrows from uncap_spike to peel, and why is it drawing peel to the right of hang?
I want uncap_spike -> peel -> hang -> spike, in that order, with one edge between each.
digraph hangers {
    compound=true
    fontname="Gill Sans"
    node [fontname="Gill Sans" shape=box fillcolor=white style="rounded, filled"]
    edge [fontname="Gill Sans"]
    subgraph cluster_prep {
        style="filled"
        label=Prep
        gather [shape=Mrecord label="{gather | EtOH swab\nvented tubing}"]
        uncap_bottle   [label="uncap bottle"]
        uncap_spike [label="uncap spike"]
        swab [shape=Mrecord label="{swab EtOH | wait 30 seconds for sterility}"]
        gather -> uncap_bottle -> swab -> uncap_spike
        {rank=same gather uncap_bottle swab uncap_spike}
    }
    subgraph cluster_hang {
        style=filled
        label=Hang
        {rank=same peel hang}
    }
    {rank=same uncap_spike -> peel -> hang -> spike -> prime}
    hang -> rip [color=firebrick]
    rip [label="eyelet\nripped" style="filled" shape=octagon regular fontcolor=white
     fontsize=10 width=.5 fixedsize color=firebrick fillcolor=firebrick ]
    swab -> not_sterile [color=firebrick]
    not_sterile [label="not\nsterile" style="filled" shape=octagon regular fontcolor=white
     fontsize=10 width=.5 fixedsize color=firebrick fillcolor=firebrick ]
}