Mnemonic device for relationships between Hom and Tensor

Probably this is a stupid question, but nevertheless...

Let $A$, $B$, $C$ and $D$ be rings, and $M$, $N$ and $K$ be appropriate bimodules between them. There are extremely well-known canonical morphisms between tensor and hom modules, like, e.g., tensor-hom adjunction, or even easier, tensor product associativity, but in certain situations I find myself hesitating before deciding which canonical morphisms of this kind really do exist and which do not.

For example:

if the rings act from the sides ${}_A M _B$, ${}_B N _C$ and ${}_D K _C$, then there are three $(A,D)$-bimodules that one can reasonably "compare":

$X:=\operatorname{Hom}_C(K, M \otimes_B N)$,

$Y:=\operatorname{Hom}_B(\operatorname{Hom}_C(N, K), M)$,

$Z:=M \otimes_B \operatorname{Hom}_C(K, N)$.

If our modules were finite-dimensional vector spaces over fields, $X,Y,Z$ would be naturally isomorphic. In general, if I am not mistaken, the only canonical morphism between them is $Z \to X$.

There are 18 essentially distinct "tensor $(A,D)$-bimodules" constructed from $M,N,K$, and they are grouped into 7 families that would be isomorphic if there was an $\ast$ such that $\operatorname{Hom}(P,Q) = P^\ast \otimes Q$ and $\ast^2 = \operatorname{id}$. How can I deduce automatically which hypothetical morphisms between them are actually well-defined and which are not?

Are there categorical notions that axiomatize this kind of relationship?

-
If the purpose is really to find a way to remember those facts that are true, then I doubt there is anything simpler and more efficient than learning them. I, for one, have to think pretty much every single time I want one of them. –  Mariano Suárez-Alvarez Oct 26 '12 at 19:27