You have a complex shader with tons of parameters and you tweak and tweak and tweak …. and somehow an older version might have been better – or you want to compare multiple versions? Of course you could implement something that does store the values etc but here is a simple – not perfect – workaround for this kind of situation:
For each 'tweaked' version, save your material as NMO into the materials folder of your resource database. Ok, now you can drag and drop the material onto your object or level … what do you say? "It's not working!" Yep, it keeps the old shader values … what you have to do to get the ones from the saved NMO is: each time before dragging in the new material NMO, you go into the material and change the shader to "– None –"- Then when you drag in the new material, you'll also get the new values.