Update: Provide more details in the documentation on if/else logic.
With the logic being different from normal conditional logic, I figured that it would be a good idea to add more documentation to further clarify the design.
Traditional logic is:
A and B or C and D
Where order of operations would be:
1) If A and B are TRUE...
2) If C and D are TRUE...
3) If (1) or (2) are TRUE...
The logic used by this program would be:
A and B or C and D
Where order of operations would be:
1) If A and B are TRUE...
2) If (1) or C are TRUE...
3) If (2) and D are TRUE...