For anyone who arrives here, MinRole is the best practice going forward. If you are hosting a farm for production/staging purposes, definitely use MinRole. Microsoft has recently reduced the VM burden by combining some MinRoles like WFE+Distributed Cache, and Search+App. https://technet.microsoft.com/en-us/library/mt667910%28v=office.16%29.aspx?f=255&MSPPError=-2147217396
For a two server farm, use WFE+Distributed Cache, and Search+App. Search+APP actually includes the WFE role, so effectively you can even use it as a WFE if you want.
MinRole configurations are the only tested scenarios from Microsoft before they release patches. Being compliant with MinRole gives you power when working with stack overflow/technet forums, or Microsoft support when trying to get help. Finally, having a hard set of service applications on your farm reduces support burden. If you really need a custom server, add a server on top of an already compliant MinRole farm.