protected function doIterativeUserSelectionSetup()
    {

        do {
            $modelChoices = $this->getIterativeUserSelectionModeChoices();

            if (empty($modelChoices)) return;

            $choice = $this->context->command->choice(
                "Choose a model to set up Sluggable for",
                array_merge($modelChoices, [ 'stop' ])
            );

            if ($choice == 'stop') return;

            if ( ! preg_match('#^(\d+):#', $choice, $matches)) return;

            $moduleId = (int) $matches[1];

            $candidate = $this->createCandidateArrayForIterativeUserSelection($moduleId);

            $this->updateModelDataInteractively($moduleId, $candidate, false);

        } while ( ! empty($choice));
    }