ctrl, shift, alt, and meta should all be bindable as individual keys.
[MODIFIER] + [KEY/MOUSE/WHEEL] is bindable where [MODIFIER] is the modifier key and [KEY/MOUSE/WHEEL] is any other key, including another modifier key.
If ctrl is bound and a is bound, they should be able to work together, but if ctrl+a and a are both bound, then when both are pressed only the former should activate. Obviously this needs to be generalized but this is a simple example to illustrate the requirement.
Requirements: