I will use an example as best I understand what you are asking about the road being named two different ways. Using a pipeline instead. I will also show classification on the layer and the same on the labels.
- Classify the layer with one or more attributes "add all values" is what I pushed. This is not neccessary to accomplish the outcome.
- On the labels tab select label and leave "label all features the same way" for now.
- Select symbol.
- Select Edit Symbol on the symbol selector dialog.
- On the Advanced Text tab check the text background and then properties button.
- Select the rounded rectangle radio button, set the tolerance to something big (I haven't experimented with too many variables), and set the top and bottom margin spacing to something smaller than the ends.
- Select OK back to the label tab in the layer properties dialog.
- Set other parameters that will be common with all the labels. i.e. font, size, bold, placement properties, expression, etc.
NOTE: the expression contains an example of displaying only the left five characters of the system attribute.
- Select apply.
- In the label all features the same way pulldown select the define classes of features and label each class differently.
- Select the "Get Symbol Classes" button. (each class defined in the symbol tab will become a seperate label class and can be checked or unchecked for labeling).
Also, now small modifications can be made to individual classes but all will have inherited the common settings.
I wish there was a way to change colors with palettes such as with symbology color ramps.
If you need to make global changes to all classes you can switch back to "all the same", make the change and back to "all different".
The maplex extension has a "length of shortest feature to be labeled", "distance to offset label in map units", and "do not repeat within map unit distance" settings that I almost always setup.
Maplex also has a street, and address street label location setting that work nicely.