Implementation is shared with splitWhen - see Split / SplitWhere Allows for easy addition of splitWhen(x => Decision) if we'd like to Resolves #16885