Interface changes for IRule so that choose() does not require passing a LB instance.