I have a complex shape with many materials assigned to it so I can't just easily pick faces to those to apply this material, so how do I reduce 3 slots that have the exact same material into one slot on one shape?
As far as I know there is no automatic way to merge material slots in one single step, you can however easily select all faces with a certain material applied and assing any other material to them.
Say you have material A, B and C and want to have only A and B. In the Properties Window > Materials select material slot A and press the Select button below, then select material slot B and click the Assign button, and you will have technically 'merged' both slots.
You can now delete material slot C by selecting it and pressing the [-] button to the right.
Merge materials in 3 easy steps.
This is your materials list:
If you want to make all that's BLUE to be RED.
1) Select the BLUE material.
2) Use the up arrow till the BLUE is under the RED.
3) Delete the BLUE by using the minus button.
Now all that was BLUE is now RED.
The way Blender behaves if you delete a material all the material that used that slot will inherit the slot above unless it is the top slot then it will inherit the one below.
There is now way how to merge materials to make some kind of new mixed material. But often an imported model can contain many duplicates of the same material with extensions like .001, .002 etc. - if this is your case, you can try this:
Enable Materials Utils
Navigate to object's materials tab and go to Material Specials Menu -> Specials -> Merge Base Names
Alternatively, you can try luck with enabling another built-in addon called Datablock Tools and go to Object -> Datablock Tools -> Clean Materials Datablock
Hopefully some of the methods will work for you.