If you just want to prescribe up front that a set of messages $m_1, m_2, \ldots, m_k$ will collide in an otherwise innocuous hash function, without regard for any cryptographic security properties…
…then the question is off-topic for crypto.SE, but you can just pick a hash function $H\colon \{0,1\}^* \to \{0,1\}^\ell$, pick your favorite hash value $h$ for the messages $\{m_i\}$, and define $$H'(m) = \begin{cases} h, & \text{if $m \in \{m_i\}$;} \\ H(m), & \text{otherwise.} \end{cases}$$ In this case, $H'(m_i) = H'(m_j)$, but $H'$ otherwise behaves like whatever kind of hash function $H$ is. It is unlikely that you can compress the description of $H'$ more than this without additional structure to the fixed messages $m_i$.
Another approach would be to define $\hat H(m) = f(H(m))$ where the polynomial $f \in \operatorname{GF}(2^\ell)[x]$ is the Lagrange interpolation of of the function $H(m_i) \mapsto h$: $$f(x) = \sum_i h\cdot\prod_j \frac{x - H(m_j)}{H(m_i) - H(m_j)}.$$ If the $m_i$ are larger than the $\ell$-bit hash values, this has a substantially shorter description: it is a degree-$k$ polynomial with hash-value-sized coefficients. (Caveat: If $H(m_i) = H(m_j)$ for any $i \ne j$, this formula doesn't work as written—the denominator $H(m_i) - H(m_j)$ is zero. In that case, just discard that term.)
Note that unlike $H'(m)$, $\hat H(m)$ does not coincide with $H(m)$ when $m \notin \{m_i\}$. Whether $\hat H(m)$ has any properties one might expect of the kind of hash function you mean, I leave as an exercise for the reader to ascertain.
(Original answer) If you were concerned about cryptographic attacks…
You can make a public-key collision-resistant hash function. Anyone can evaluate the hash function; knowledge of a secret key enables finding collisions; without knowledge of the secret key, finding collisions is conjectured to be difficult.
One example is $x \mapsto y^x \bmod n$ for random $y$, where $n = pq$ is an RSA modulus. If you know the factors $p$ and $q$ of the modulus, then it is easy to find a collision; if you don't, then it's probably not. Specifically: any algorithm that can compute a collision with nonnegligible probability can be used as a subroutine to solve the RSA problem, computing roots modulo a large semiprime of secret factorization, without much additional effort. Under certain additional conditions, finding a collision can't be much easier than factoring for an analogous reason.
VSH is a somewhat more well-known example, defined on arbitrary bit string messages.
These don't allow you to prescribe collisions, however: you get no choice in the messages that collide, only the ability to find them. Actually you even get the ability to find preimages and second preimages, but again, no control over which sets of messages collide.