if(mask && !(mask&(mask-1)))
{
// Exactly one possible choice, set the path accordingly
unsigned path = 0;
for(; (mask && !(mask&1)); mask>>=1, ++path) ;
if(mask && !(mask&(mask-1)))
{
// Exactly one possible choice, set the path accordingly
unsigned path = 0;
for(; (mask && !(mask&1)); mask>>=1, ++path) ;