Endpoints can have multiple input connections but only one output

It looks like theres quite a bit of repitition between here and `Connection`. Could you explain why `ComponentManager` also needs `biDirectional` and `flipDirection`?