Dependency Tests Refactoring

Refactored Dependency Tests :
- Created class.
- Added a new set to hold all well-defined conditions.
- Short circuits tree traversal when reaching a condition that's already been verified to be well or ill-defined