add support for (and tests of) |= operator
add support (and tests) for select_first