Feature: first parameter in publish method can be a hash specifying message metadata