public static function select($prompt, $options = [])
{
top:
static::stdout("{$prompt} [" . implode(',', array_keys($options)) . ',?]: ');
$input = static::stdin();
if ($input === '?') {
foreach ($options as $key => $value) {
static::output(" {$key} - {$value}");
}
static::output(' ? - Show help');
goto top;
} elseif (!array_key_exists($input, $options)) {
goto top;
}
return $input;
}