public void AddBuilder(IBuilder builder)
{
if (!Contains(builder))
{
var prereqs = builder.Prerequisites.ToList();
builders.Add(new EquatableEdge<IBuilder>(builder, builder));
foreach (var prerequisite in prereqs)
{
AddBuilder(prerequisite);
builders.Add(new EquatableEdge<IBuilder>(builder, prerequisite));
}
}
}