Pyth, 17 15 1111 14 bytes
AQ|!G}Ym-dH./G The requirement for the empty string changed, adding 3 bytes.
Explanation
AQ|!G}Ym-dH./G AQ Save the input into G, H. ./G Get all partitions of G. m-dH Check if the parts are in H. }Y The empty list should be present if and only if the string can be made... |!G ... or the string might be empty. Old versions
AQ}Ym-dH./G AQ}Ym-dH./G AQ Save the input into G, H. ./G Get all partitions of G. m-dH Check if the parts are in H. }Y The empty list should be present if and only if the string can be made. Old version
AQ&G}GsMs.pMy*HlG