//! which rule to apply. That is, when more than one rule from the same group returns [`Some(...)`]
/// Returns the first ([`Rule`], [`Update`]) if the iterator only yields one, otherwise calls `select`.
/// Returns the first available ([`Rule`], [`Update`]) if there is one, otherwise returns `None`.