Also, this shouldn't be just a removal of that edge.  It should be a replacement with the end of this branches' edges.
```
   ----B<E
A*---C<F
  ---D<G
```
If the search terminates at B, C, and D and you choose to keep B, you should end up with `A<E` right?