public void AssertEqualityUsing(EquivalencyValidationContext context)
 {
     ExecuteUsingSubjectName(context.PropertyDescription, () =>
     {
         if (!context.ContainsCyclicReference)
         {
             foreach (IEquivalencyStep strategy in steps.Where(s => s.CanHandle(context)))
             {
                 if (strategy.Handle(context, this))
                 {
                     break;
                 }
             }
         }
         else
         {
             context.HandleCyclicReference();
         }
     });
 }