Works for me:

    In [5]: boxcox(0, [-0.5, 0, 0.5])
    Out[5]: array([-inf, -inf,  -2.])

    In [6]: boxcox1p(-1, [-0.5, 0, 0.5])
    Out[6]: array([-inf, -inf,  -2.])

It relies on `expm1(-inf)` returning -1.  Is that a problem?