Rather than relying on dictupdate to merge the pillar and defaults data, first try to get the value from the pillar. If that fails, try the defaults data, and if that fails -- use the default variable passed to the function.
Using .format to build the pillar key as requested
Merge pull request #11251 from bigkraig/simplify-defaults

Don't rely on the dictupdate for defaults.py