How do you handle bidirectional signals in Verilog?

Use inout ports.
module bidirectional (
    inout wire bus,
    input enable,
    input data_in,
    output data_out
);
assign bus = enable ? data_in : 1'bz;
assign data_out = bus;
endmodule?