I think a bit shorter if you use functor CT polymorphism.
My approach will be a Non MF that called appropriate MF.

Question 1:
What is the pro and cons using functor CT polymorphism ?

The thinking logic is from based on the edge type then coded different implement strategy.
I never think this out. Now i know.

A billion thanks for your help.