introduce optional `once` argument for `addSelectorListener`