I recommend building the backend against 0.1.4.preview.1 (gem install asciidoctor --pre). Then, you can use:

(1)
```
%li{:class=>('fragment' if option? 'step')}
```

Also, I like we should allow step to be either an option or a role, so perhaps do something like:

(2)
```
%li{:class=>('fragment' if (option? 'step') || (role? && role.split(' ').include?('step')))}
```

I'll make a `roles` method that returns the roles as an array to make that cleaner. I'll also allow `role?` to take a match argument like  `attr?`. Once I do that, then it can be written as:

(3)
```
%li{:class=>('fragment' if (option? 'step') || (role? 'step'))}
```

Until I add those methods, just type it out long-hand as in (2).