This looks like it will silently accept anything as an equivalency regardless of whether or not it's valid.  Perhaps add an equivalencies validator that will raise an error if the thing you give it isn't a valid equivalency list?